Date: Wed, 20 Nov 1996 21:55:20 GMT
Server: Apache/1.0.5
Content-type: text/html
Content-length: 14626
Last-modified: Wed, 13 Nov 1996 19:36:51 GMT

<HTML>
<HEAD>

<TITLE>CS 455 Syllabus</TITLE>

<!--  describe the document, avoid context sensative descriptions >
<meta name="description"
      value="CS 455 Syllabus"

<!--  keywords for the document >
<meta name="keywords"
      value="byu, graphics, computer, syllabus">

<!--  should be "document" unless providing a search, then "service" >
<meta name="resource-type"
      value="document">

<!--  use global for documents to be indexed outside BYU >
<meta name="distribution"
      value="local">

</HEAD>

<BODY>

<H1>COMPUTER SCIENCE 455</H1>
<STRONG>COMPUTER GRAPHICS</STRONG><BR>
<STRONG>Fall 1996</STRONG><BR>
<STRONG>SYLLABUS</STRONG><BR>

<HR>
<H3>USEFUL INFORMATION</H3>
<STRONG>Help on Assignment Three</STRONG> is <!WA0><A HREF="http://www.cs.byu.edu/courses/cs455/3Help.html">here</A>.<BR>
This is the material to be covered in the help section Monday, Nov 4, at 10am.
It is under construction and may contain additional help in the future.<BR>
7 People attended the help section on Monday. It will be offered again Tuesday,
Nov 5, at 10 am at 1120 TMCB. If there is enough popular demand I can schedule 
another session in afternoon or evening. Otherwise, I suggest looking over these
notes or coming to me for questions. You may also ask other students. 
<BR>
<STRONG>NOTE: </STRONG>The help on assignment three has been updated with new information
about normal direction vectors. Please refer to it frequently as new information
may appear at any moment. 
<STRONG>IMPORTANT:</STRONG>
A <!WA1><A HREF="http://www.cs.byu.edu/courses/cs455/polyclip.txt">correction</A> to the polygon clipping algorithm. Please pass the word along
to others struggling with this code.<BR>
Previous midterm exams:
<UL>
<LI> <!WA2><A HREF="http://www.cs.byu.edu/courses/cs455/testf95.txt">Test 1, Fall 1995.</A>
<LI> <!WA3><A HREF="http://www.cs.byu.edu/courses/cs455/oldquiz.txt">Test 2, Fall 1995.</A>
<LI> <!WA4><A HREF="http://www.cs.byu.edu/courses/cs455/95test3.txt">Test 3, Fall 1995.</A>
<LI> <!WA5><A HREF="http://www.cs.byu.edu/courses/cs455/95test4.txt">Another test from Fall 1995.</A>
<LI> <!WA6><A HREF="http://www.cs.byu.edu/courses/cs455/F95Q4.txt">Test 4, Fall 95.</A>
</UL> 
Information about SGI's gl is<!WA7><A HREF="http://www.cs.byu.edu/courses/cs455/glinfo.html"> here.</A> Now includes
some information about events.<BR>
Information about image files is<!WA8><A HREF="http://www.cs.byu.edu/courses/cs455/images.html"> here.</A><BR>                                 
<HR>

<H3>CONTENT</H3>

This course surveys computer graphics and provides familiarity with graphics software and hardware systems.  The course covers output primitives, geometric representations, two- and three-dimensional transformations, windowing, and clipping.  Segments, interactive methods, and modeling methods are also covered.    Three-dimensional concepts of hidden-surface removal, hidden-line removal,
shading, color models, and computer animation are covered.<P>

<H3>TIME AND PLACE</H3>

<STRONG>Time:</STRONG>               9:00 - 9:50 MWF<BR>
<STRONG>Place:</STRONG>              2201 SFLC<P>

<H3>INSTRUCTOR AND TEACHING ASSISTANT</H3>

<STRONG>Instructor:</STRONG>        <!WA9><A HREF="http://www.cs.byu.edu/courses/cs455/<A HREF="http://www.cs.byu.edu/info/burton.html">Robert P. Burton</A><BR>  
<STRONG>Office: </STRONG>           <!WA10><A HREF="http://www.cs.byu.edu/building/TMCB-3rd.html">3326 TMCB</A><BR>
<STRONG>Office Hours:</STRONG>  	   12:00 - 12:50 class days (MWF)<BR>
<STRONG>e-mail:</STRONG>            <!WA11><A HREF="mailto:rpburton@cs.byu.edu">rpburton@cs.byu.edu</A><P>

<STRONG>Teaching Assistant:</STRONG> 	<!WA12><A HREF="http://students.cs.byu.edu/~mellor/mellor.html">Nathan Mellor</A><BR>
<STRONG>Office:</STRONG> <!WA13><A HREF="http://www.cs.byu.edu/building/TMCB-1st.html">1120 TMCB</A>   378-8149<BR>
<STRONG>Office Hours:</STRONG>       	9-12 MWF 9-11 TTH<BR>
<STRONG>e-mail:</STRONG> <!WA14><A HREF="mailto:mellor@cs.byu.edu"> mellor@cs.byu.edu</A><P>

<H3>TEXT</H3>

Computer Graphics - Second Edition by Donald Hearn and Pauline Baker


<H3>REFERENCE TEXT</H3>

Computer Graphics Principles and Practice by  James D. Foley et al



<H3>SEQUENCE OF MATERIAL</H3>

The material in the text will be presented sequentially.  Ancillary material will be presented selectively and more quickly.  Core material will be presented with greater emphasis.  You will be responsible for the contents of the entire text except as stated in class.  Always read each chapter before it is presented in class.

<H3>TIME ALLOTMENT</H3>

This course is an elective senior/graduate course which follows the guideline of two to three hours out of class for every hour in class, for an average total of nine to twelve hours per week.

<H3>GRADING</H3>

Your final grade is determined strictly from the percentage of points earned out of points possible.  The approximate breakdown is as follows:<BR>

  Midterms             		30%<BR> 
  Final Examination    	20%<BR>
  Graphics Package     	50%<BR> 

       TOTAL          		100%<P>

  Letter grades are assigned as follows:<P>

A     93.3% and above 	B-  above 80.0%     	D+  above 56.7%<BR>
A-    above 90.0%     	C+  above 73.3%    	D   above 53.3%<BR>
B+    above 86.7%     	C   above 66.7%     	D-  above 50.0%<BR>
B     above 83.3%     	C-  above 60.0%     	E   above 00.0%<P>

I     Circumstances beyond the student`s control and not in his contemplation
      occurring after the 12th week of the semester<P>

UW    No activity after the 12th week of the semester.<P>



<H3>MIDTERMS AND FINAL EXAMINATION</H3>

Midterms will be multiple choice, closed book, closed notes, and administered in the Testing Center.  

The Final Examination will consist of two parts: 1) questions taken from the midterms, possibly with the wording or information changed, but testing the same concepts,  2) material since the last midterm.  Instead of taking any or all of part (1), you may elect to carry his midterm percentage(s) forward to this part.  The Final Examination will be timed, multiple choice, closed book, closed notes on Wednesday, December 18, 1996 in the Testing Center.

<H3>PROGRAMMING ASSIGNMENT DEADLINES, LATE DAYS, AND EARLY DAYS</H3> 

There are four phases or programming assignments, as follows:<P>

           Title                         Points     		Due Date<BR>
  <!WA15><A HREF="http://www.cs.byu.edu/courses/cs455/assign1.txt">Phase 1</A>: Primitives             85 points 	October 2, 1996<BR>
  <!WA16><A HREF="http://www.cs.byu.edu/courses/cs455/assign2.txt">Phase 2</A>: 2D Graphics	   85 points 	October 23, 1996<BR>
  <!WA17><A HREF="http://www.cs.byu.edu/courses/cs455/assign3.txt">Phase 3</A>: 3D Graphics	   85 points 	November 22, 1996<BR>
  Phase 4</A>: Three Options   85 points 	December 13, 1996
<UL>
<LI> <!WA18><A HREF="http://www.cs.byu.edu/courses/cs455/assign4RayTracing.txt">Ray Tracing</A> or
<LI> <!WA19><A HREF="http://www.cs.byu.edu/courses/cs455/assign4Fractals.txt">Fractals</A> or
<LI> <!WA20><A HREF="http://www.cs.byu.edu/courses/cs455/assign4Animation.txt">Animation</A>
</UL>
 (choose 1 option only)<BR>
  Total Points:                      340 points<P>

You may earn up to 100 points in any phase.<P>
       
You may accumulate up to five late days without penalty.  Late days consist of Monday through Friday except holidays.  Once five late days have been accumulated, each additional day results in a 10% (of maximum points) loss.  No work will be accepted after December 13, 1996.<P>

Work submitted early accumulates early days against which subsequent late days may be charged without penalty.<P>

<HR>

<H2>GRAPHICS PACKAGE REQUIREMENTS</H2>

<H3>GENERAL OVERVIEW</H3>

The objective of these requirements is to allow you to design and implement a basic but useful three-dimensional graphics package.  Emphasis is given to fundamental computer graphics elements that are common to all general purpose 3D computer graphics packages.  This course does not emphasize documentation or software design nor does it emphasize user interfaces.  These are appropriate subjects for other courses and are of obvious importance.  The goal of this course is to allow you to gain an understanding of the important fundamental algorithms and techniques used in computer graphics.
<P>
Now, a warning to the wise concerning some things you should do so that you have a pleasant experience in this course.  First, scan ahead and read all parts of the text that have something to do with your implementation.  This saves you from realizing down the road that the architecture of your package cannot easily accommodate a new capability that must be incorporated.  Understand all the elements and how they will fit together from the start.  Design your package ahead of time.  This task, though time consuming, saves you a lot of headaches later on.  There simply is not enough time in the semester to finish your package if you wait until a concept is discussed in class before you begin to think about it or to implement it.  While this philosophy may be odd to some, this is the only way you can produce a good package in this class given the unavoidable time constraints common to university courses and to actual production environments.
<P>
Second, start early!  The pass-off deadlines come up very fast.  Try always to keep a couple of weeks ahead so that you aren't caught short and so that you have time left at the end of the semester to meet your other responsibilities.
<P>
Third, make your code robust.  Use good sense and your knowledge of good program design.  
<P>
Finally, do not limit yourself to the course textbook.  Read other texts and any other material that may give more information on a subject or explain it better.  Other sources can be of great value to you for your implementation.
<P>
<H3>MACHINES AND LANGUAGES</H3>

Students may use any machines or languages that are capable of accommodating the package requirements and to which they have authorized access for CS 455. To make pass-offs manageable for the TA, you must pass-off your package on a computer located on BYU's campus which you have authorized access to.  If you develop your package on a computer at home, please make sure that there is a compatible computer which will run your package on campus.  Otherwise, you will be under the necessity of transporting your computer to campus for each pass-off, which might not be convenient for you unless the computer is a laptop.  The display device should be capable of displaying at least 256 different colors at a resolution of at least 640 x 480 pixels.
<P>
Several department machines are available:<P>

  SGI's :             	2244 TMCB (machines of choice).
  <!WA21><A HREF="http://www.cs.byu.edu/courses/cs455/glinfo.html"> Info.</A><BR>
  PC's :              	1149 TMCB <BR>
  MAC's :            	1149 TMCB (CS 143 and CS 535 have priority)<BR>
  UNIX systems :  	2204 and 2240 TMCB<P>


<H3>INTERFACE AND PASS-OFF PROCEDURE</H3>
 
A static demo is NOT sufficient for pass-off.  Your implementation must be somewhat interactive.  The objective of the pass-off is to demonstrate the robustness of your implementation by performing arbitrary graphics functions. There are several options you may choose from depending on your preferences and development environment. <P> 

  1) GUI    			You may use mouse, keyboard, menus, dialogs, or any controls  you wish.  However, this is not required.  It is assumed that this interface will be intuitive.  The supported commands and their optional parameters will be tested using the GUI.<P>

  2) Script-File		You may create and process a simple script file to demonstrate the functionality of your software.  Please provide the syntax or sample commands that can be processed from the script file.   The supported commands and their optional parameters will be tested by editing the script files and then processing them.<P>  

  3) Command-Line   	You may use a command line interface.  If you choose this option please include the ability to print out the commands and parameters on a simple help screen.  The supported commands and their optional parameters will be tested using the command-line interface.  This is the least convenient implementation.<P>  


About one week before pass-off, the TA will supply the students with a pass-off sign up sheet.  You will be required to turn in an electronic copy of your code. However, there are no special code or documentation requirements.<P>   


<H3>GRADING OF PROGRAMMING ASSIGNMENTS</H3>

Each assignment must be completed by the due date or late days will be charged.  The"*" indicates functions which you must provide.  All required functionality must be completed.  The balance of points for each section may be earned by completing optional items listed in each category.  You may also propose additional options in writing which, if approved in advance, may count toward the total of optional points.  There are 85 points for each of the four phases for a total of 340 possible points. Note that phase 4 gives you three different options to choose from.  Each option is worth 85 points.  Choose only one of them.  Up to 20 points may be deducted for each assignment if the interface does not facilitate adequate testing of the functionality.  For example, drawing a line must accept start and end points and any other functionality supported such as width, color, etc.  Points will be awarded based on the sophistication and elegance of the functionality.<P>


<H3>USE OF OPERATING SYSTEM GRAPHICS PRIMITIVES</H3>

For phase 1 (primitives), the only operating system primitives you may use are those that draw individual pixels or clear the screen.  This restriction applies only to the graphics code specified by this assignment.  For the user interface, you may use any operating system or library support available to make your job easier.<P>

For phase 2 and later, you may use built-in operating system or library primitives that draw lines, circles, polygons, etc., so that you can concentrate on implementing the higher level functionality called for in the assignments.<P>
  
<H3>RESOURCES</H3>
Many of the options can be programmed using only information from the text book. Following each option, the page numbers in the text book that cover It are listed in parenthesis. For some options, especially in phase 4, the text book has insufficient detail to allow you to program it without using outside resources.  The reference books cited should prove helpful, and the library has many other graphics books that would be helpful also.  IMPORTANT NOTE: not all of the graphics books are available in the library "on the shelf".  Some of the graphics books are kept behind locked doors (some of them include CDs or disks) and you have to ask the librarian to get them for you before you can check them out.<P>

Feel free to come in and see the TA during office hours for additional help.  The programming assignments for this class are heavy and the deadlines come up quickly.  It is important to not "get stuck" and procrastinate working on the assignment until the deadline is imminent.  If you reach a point where you are not sure how to proceed, It is much better to get some help right away and get going again, rather than wait until deadline panic sets in and it may be too late to catch up.<P>

</BODY>

</HTML>


